home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol136 / checkdiw.bas < prev    next >
Encoding:
BASIC Source File  |  1986-12-15  |  10.0 KB  |  184 lines

  1. 4000 COLOR 7,0: REM ***************************************************************************************************
  2. 4010 REM                      "CHECKDIW" SUBROUTINE TO UPDATE BANK PAYEE STATEMENT RECORD
  3. 4020 REM                      IN FILE #2 WITH:  DEPOSITS, INTEREST RECEIVED AND WITHDRAWALS
  4. 4030 REM  *************************************************************************************************************
  5. 4040 GOSUB 260  'OPEN FILES #1,#2,#3
  6. 4050 GET #1,1  'GET THE BANK STATEMENT RECORD
  7. 4060 IF F1$="$" THEN GOTO 4140
  8. 4070     COLOR 7,0: PRINT "  The Bank Statement record has been"
  9. 4080     PRINT "  overlayed in FILE #1, Record #1"
  10. 4090     PRINT "  By Payee # ";P1$
  11. 4100     COLOR 31,0: PRINT "  Correct File then rerun this job": COLOR 7,0: GOTO 330
  12. 4110 REM  ************************************************************************************************************
  13. 4120 REM               WRITE BANK STATEMENT 'DIW' FIELD TO ACTIVITY LOG FILE 'BEFORE' IT IS UPDATED
  14. 4130 REM  ************************************************************************************************************
  15. 4140 TC$="50"
  16. 4150 GOSUB 5680
  17. 4160 GOSUB 310
  18. 4170 REM  ************************************************************************************************************
  19. 4180 REM                            DISPLAY TRANSACTION CODES WHICH MAY BE ENTERED
  20. 4190 REM  ************************************************************************************************************
  21. 4200 CLS
  22. 4210 PRINT "   Transaction Codes Are:"
  23. 4220 PRINT
  24. 4230 PRINT   "    1  Deposits"
  25. 4240 PRINT   "    2  Interest Received"
  26. 4250 PRINT   "    3  Withdrawals"
  27. 4260 PRINT:
  28. 4270 PRINT   "    9  Return To 'Job Choices Menu'"
  29. 4280 BEEP: PRINT:
  30. 4290 COLOR 0,7:PRINT "  Enter Transaction  Code: ";: Y = CSRLIN: X = POS(0)
  31. 4300 FIELDMAX% = 1: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  32. 4310 C$ = DATU$: IF C$ = "9" THEN GOTO 5600
  33. 4320 IF C$ = "1" THEN TRANS$ = "Deposit   ": GOTO 4360
  34. 4330 IF C$ = "2" THEN TRANS$ = "Interest  ": GOTO 4360
  35. 4340 IF C$ = "3" THEN TRANS$ = "Withdrawal": GOTO 4360
  36. 4350 COLOR 31,0: PRINT "Invalid Code, Retry": COLOR 7,0: GOTO 4280
  37. 4360 PRINT: COLOR 0,7: PRINT "  Enter ";TRANS$;" Amount:";: Y = CSRLIN: X = POS(0)
  38. 4370 FIELDMAX% = 9: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  39. 4380 IF DATU$ = "" THEN GOTO 4360
  40. 4390 AMT = VAL(DATU$)
  41. 4400 LOCATE Y,X+1
  42. 4410 COLOR 0,7: PRINT USING "#####.##-";AMT: COLOR 7,0
  43. 4420 TDATE$ = SPACE$(8): LSET TDATE$ = DATE$
  44. 4430 YR$ = MID$(DATE$,9,2): MID$(TDATE$,7,2) = YR$
  45. 4440 COLOR 0,7: PRINT "  Enter Transaction  Date: ";TDATE$
  46. 4450 PRINT "    (If not today's date) ";: Y = CSRLIN: X = POS(0)
  47. 4460 FIELDMAX% = 8: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  48. 4470 IF DATU$<>"" THEN TDATE$ = DATU$
  49. 4480 T=CVS(S2$)
  50. 4490 IF C$<>"3" THEN T=T+AMT ELSE T=T-AMT
  51. 4500 LSET S2$=MKS$(T)
  52. 4510 T=CVS(S4$)
  53. 4520 IF C$<>"3" THEN T=T+AMT ELSE T=T-AMT
  54. 4530 LSET S4$=MKS$(T)
  55. 4540 REM  ************************************************************************************************************
  56. 4550 REM                            UPDATE BANK PAYEE TRANSACTION RECORD IN FILE #2
  57. 4560 REM  ************************************************************************************************************
  58. 4570 GET #2,1  'GET BANK STATEMENT'S FILE #2 FIRST RECORD
  59. 4580 SVADDRS%=1  'SAVE FILE#2 RECORD ADDRESS FOR CHAIN
  60. 4590 SAVEP2$=P2$ 'SAVE PAYEE CODE
  61. 4600 REM  ************************************************************************************************************
  62. 4610 REM          IF FIELD 'L$' IS NOT ZEROS THEN THERE IS A CHAINING  RECORD, USE FIELD 'L$' POS. 127-128,
  63. 4620 REM                    TO GET THE LAST RECORD IN THE BANK STATEMENT FILE #2 RECORDS
  64. 4630 REM  ************************************************************************************************************
  65. 4640 IF P2$="0000" THEN GOTO 4680
  66. 4650    PRINT: PRINT "  Not Payee Code '0000'"
  67. 4660    PRINT "  Chained Record has Payee Code ";P2$
  68. 4670    COLOR 31,0: PRINT "  Correct ERROR before rerunning job":  COLOR 7,0: GOTO 330
  69. 4680 CHANE%=CVI(L$)
  70. 4690 IF CHANE%=0 THEN GOTO 4800
  71. 4700 IF (CHANE%>M1%) AND (CHANE%<(M2%+1)) THEN GET #2,CHANE%: SVADDRS%=CHANE%: SAVEP2$=P2$: GOTO 4640
  72. 4710    PRINT "  Chaining record error on Payee ";P2$
  73. 4720    PRINT USING "  Chaining field is ####";CHANE%
  74. 4730    PRINT "  Valid Chaining records are ";M1%+1;"-";M2%
  75. 4740    COLOR 31,0: PRINT "  Correct ERROR Before rerunning job"
  76. 4750    COLOR 7,0: GOTO 330  'ERROR ON FILE, DO NOT CONTINUE
  77. 4760 REM  ************************************************************************************************************
  78. 4770 REM             TEST CHECK NO. FIELD FOR ZEROS TO FIND NEXT SLOT FOR ENTERING THIS TRANSACTION.
  79. 4780 REM             EACH FILE #2 RECORD HOLDS 8 TRANSACTIONS.
  80. 4790 REM  ************************************************************************************************************
  81. 4800 GOSUB 270    'MOVE FILE #2 FIELDS TO DATA ARRAY
  82. 4810 FOR I = 1 TO 8
  83. 4820    IF CHEK1%(I) = 0 THEN GOTO 4890
  84. 4830 NEXT I
  85. 4840 GOSUB 290  'CREATE A CHAIN FILE #2 RECORD FOR THIS PAYEE
  86. 4850 GOTO 4800  'FIND FILE #2 RECORD SLOT FOR STORING THIS TRANSACTION
  87. 4860 REM  ************************************************************************************************************
  88. 4870 REM                               MOVE DATA TO FIRST AVAILABLE FILE #2 SLOT
  89. 4880 REM  *************************************************************************************************************
  90. 4890 CHEK2$(I) = SPACE$(1)
  91. 4900 CHEK3$(I) = TDATE$
  92. 4910 CHEK4(I) = AMT
  93. 4920 IF C$="1" THEN CHEK1%(I) = -1
  94. 4930 IF C$="2" THEN CHEK1%(I) = -2: CHEK2$(I)="C"
  95. 4940 IF C$="3" THEN CHEK1%(I) = -3
  96. 4950 REM  ************************************************************************************************************
  97. 4960 REM                                MOVE DATA TO AUDIT TRAIL RECORD FIELDS
  98. 4970 REM  ************************************************************************************************************
  99. 4980 TC$="51"
  100. 4990 CN%=CHEK1%(I)
  101. 5000 AC$=CHEK2$(I)
  102. 5010 TD$=TDATE$
  103. 5020 PA%=SVADDRS%
  104. 5030 PC$=P2$
  105. 5040 PA$=A1$
  106. 5050 TAMT=AMT
  107. 5060 LACTM%=0
  108. 5070 LACTS%=0
  109. 5080 LAMT=0
  110. 5090 BDIW=0
  111. 5100 BAMT=0
  112. 5110 IF BOOKS$="Y" THEN GOTO 5170
  113. 5120 GOSUB 310  'EXECUTED ONLY IF NOT USING THE SIMPLE BOOKKEEPING SYSTEM OPTION
  114. 5130 GOTO 5500
  115. 5140 REM  **************************************************************************************************************
  116. 5150 REM            DISTRIBUTE THE 'DIW' TRANSACTION AMOUNT TO THE SIMPLE BOOKKEEPING SYSTEM ACCOUNTS
  117. 5160 REM  **************************************************************************************************************
  118. 5170 T=AMT  'TRANSACTION AMOUNT TO DISTRIBUTE BY ACCOUNT NUMBER
  119. 5180 REM  ---------------------WITHDRAWALS ARE DEBITED TO CASH-ON-HAND--------------------------------------------------
  120. 5190 IF CN% > -3 THEN GOTO 5250
  121. 5200     LACTM% = 100
  122. 5210     LACTS% = 2
  123. 5220     LAMT = AMT
  124. 5230     GOTO 5470
  125. 5240 REM  --------------------------------------------------------------------------------------------------------------
  126. 5250 CLS
  127. 5260 PRINT "  Enter Income Account Numbers and"
  128. 5270 PRINT "  Amounts for BOOKKEEPING SYSTEM"
  129. 5280 PRINT: PRINT USING "    Transaction Amount is: #####,.##-";T
  130. 5290 PRINT "  Enter the following:"
  131. 5300 COLOR 0,7: PRINT SPC(10);"Major Account #: ";: Y = CSRLIN: X = POS(0)
  132. 5310 FIELDMAX% = 4: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  133. 5320 IF DATU$ = "" THEN GOTO 5300
  134. 5330 IF LEN(DATU$)<>4 THEN PRINT "  Account is a 4 digit code, retry": GOTO 5300
  135. 5340 LACTM% = VAL(DATU$)
  136. 5350 IF LACTM% = 0 THEN COLOR 31,0: PRINT NOTNUM$: GOTO 5300
  137. 5360 PRINT: COLOR 0,7: PRINT SPC(12);"Record Number: ";: Y = CSRLIN: X = POS(0)
  138. 5370 FIELDMAX% = 3: NUM.ONLY% = TRUE%: DEC.MINUS% = FALSE%: GOSUB 320
  139. 5380 IF DATU$ = "" THEN GOTO 5360
  140. 5390 LACTS% = VAL(DATU$)
  141. 5400 IF LACTS% > 0 AND LACTS% < (M10% + M11% + 1) THEN GOTO 5420
  142. 5410     COLOR 31,0: PRINT "  Enter a valid Record Number": GOTO 5360
  143. 5420 PRINT: COLOR 0,7: PRINT "  Amount for this Account: ";: Y = CSRLIN: X = POS(0)
  144. 5430 FIELDMAX% = 9: NUM.ONLY% = TRUE%: DEC.MINUS% = TRUE%: GOSUB 320
  145. 5440 IF DATU$ = "" THEN GOTO 5420
  146. 5450 LAMT = VAL(DATU$)
  147. 5460 LOCATE Y,X+1: COLOR 0,7: PRINT USING "#####.##-";LAMT: COLOR 7,0
  148. 5470 GOSUB 310  'WRITE AUDIT TRAIL RECORD
  149. 5480 T = T - LAMT
  150. 5490 IF ABS(T) > (8.999999E-03) THEN TAMT=0:  PRINT USING "  Undistributed amount is: #####,.##-";T: GOTO 5290
  151. 5500 GOSUB 280  'MOVE DATA ARRAY TO FILE #2 I/O BUFFER
  152. 5510 REM  ************************************************************************************************************
  153. 5520 REM              PUT FILE #1 AND FILE #2 RECORD AFTER DEPOSIT, INTEREST, AND WITHDRAWAL UPDATES.
  154. 5530 REM  ************************************************************************************************************
  155. 5540 PUT #1,1         'BANK STATEMENT FILE #1 RECORD UPDATED
  156. 5550 PUT #2,SVADDRS%  'BANK STATEMENT FILE #2 LAST CHAINING RECORD UPDATED
  157. 5560 GOTO 4200        'RETURN TO DISPLAY TRANSACTION CODES MENU
  158. 5570 REM  ************************************************************************************************************
  159. 5580 REM              WRITE BANK STATEMENT 'DIW' FIELD TO ACTIVITY LOG FILE 'AFTER' IT IS UPDATED
  160. 5590 REM  *************************************************************************************************************
  161. 5600 TC$="52"
  162. 5610 GOSUB 5680
  163. 5620 GOSUB 310
  164. 5630 CLOSE   'CLOSE ALL FILES
  165. 5640 GOTO 250  'RETURN TO JOB CHOICES MENU DISPLAY
  166. 5650 REM  **************************************************************************************************************
  167. 5660 REM               SUBROUTINE TO MOVE 'BEFORE' AND 'AFTER' D-I-W DATA TO 'AUDTRAIL' FILE FIELDS
  168. 5670 REM  **************************************************************************************************************
  169. 5680 CN%=0
  170. 5690 AC$=SPACE$(1)
  171. 5700 TD$=SPACE$(8)
  172. 5710 PA%=1
  173. 5720 PC$=P1$
  174. 5730 PA$=A1$
  175. 5740 TAMT=0
  176. 5750 LACTM%=0
  177. 5760 LACTS%=0
  178. 5770 LAMT=0
  179. 5780 BDIW=CVS(S2$)
  180. 5790 BAMT=CVS(S3$)
  181. 5800 RETURN
  182. 9000 GOTO 9000  'CHAIN MERGE AREA LAST STATEMENT
  183.  LACTS%=0
  184. 5770 LAM